<?php
/*
/**
* Index 模块服务接口
*/

namespace app\api\controller;

use think\Db;

class Address extends Common
{

    /**
     * 摊大饼
     * @desc 摊大饼策略根据节假日决定是否爬取数据
     */
    public function index()
    {
        $msciArray=[
            'sz399975',//证券行业
            'sz399919',//300价值（沪深300价值）
            'sh000015',//上证红利
            'sz399922',//中证红利
            'sz399905',//中证500
            'sz399986',//中证银行
        ];

        $this->getData();
//        dump(date('y-m-d h:i:s',time()));die;
//        try {
//         $this->getData();
//        } catch (\Exception $e) {
//            $this->email(" 我的服务器", "可转债运行bug", $e->getMessage() . "行号:" . $e->getLine() . $e->getTraceAsString());
//        }
        $isholiday = Db::table('group')->where('group_id', 1)->value('holiday');
        if ($isholiday == 2) {
            echo '节假日休市';
        } elseif ($isholiday == 1) {
            echo '休息日休市';
        } else {
            $week = date("w", time());
            if ($week == 1 || $week == 2 || $week == 3 || $week == 4 || $week == 5) {
//                $mscistart = strtotime('13:00');
//                $msciend = strtotime('15:00');
//                if (time() > $mscistart && time() < $msciend) {
//                    $seconds = rand(1, 30);
//                    sleep($seconds);
//                    try {
                        $this->getData();
//                    } catch (\Exception $e) {
//                        $this->email(" 我的服务器", "可转债运行bug", $e->getMessage() . "行号:" . $e->getLine() . $e->getTraceAsString());
//                    }
//                }
            } else {
                echo '周末休市';
            }

        }
    }


    /**
     * 请求接口返回内容
     * @param  string $code [请求的股票]
     * @return  string
     *
    上证指数(sh000001)	Ａ股指数(sh000002)	中证500(sh000905)	深证成指(sz399001)	成份Ａ指(sz399002)	成份Ｂ指(sz399003)
    深证100R(sz399004)	新 指 数(sz399100)	中小板指(sz399005)	深证综指(sz399106)	深证Ａ指(sz399107)	深证Ｂ指(sz399108)
    农林指数(sz399110)	采掘指数(sz399120)	制造指数(sz399130)	食品指数(sz399131)	纺织指数(sz399132)	木材指数(sz399133)
    造纸指数(sz399134)	石化指数(sz399135)	电子指数(sz399136)	金属指数(sz399137)	机械指数(sz399138)	医药指数(sz399139)
    水电指数(sz399140)	建筑指数(sz399150)	运输指数(sz399160)	IT指数(sz399170)	批零指数(sz399180)	金融指数(sz399190)
    地产指数(sz399200)	服务指数(sz399210)	传播指数(sz399220)	综企指数(sz399230)	沪深300(sz399300)	基金指数(sz399305)
    巨潮40(sz399310)	巨潮1000(sz399311)	巨潮300(sz399312)	巨潮100(sz399313)	巨潮大盘(sz399314)	巨潮中盘(sz399315)
    巨潮小盘(sz399316)	巨潮Ａ指(sz399317)	巨潮Ｂ指(sz399318)	资源优势(sz399319)	公用事业(sz399320)	巨潮红利(sz399321)
    巨潮治理(sz399322)	深证红利(sz399323)	深红利P(sz399324)	深证成长(sz399325)	深成长P(sz399326)	深证治理(sz399327)
    深治理P(sz399328)	中小板指(sz399329)	深证100P(sz399330)	深证创新(sz399331)	深创新P(sz399332)	中小板R(sz399333)
    深报指数(sz399351)	深报综指(sz399352)	盐田港指(sz399353)	CBN 长江(sz399355)	CBN 珠江(sz399356)	CBN 渤海(sz399357)
    企债指数(sz399481)	小康指数(sz399901)	中证流通(sz399902)	中证100(sz399903)	中证 200(sz399904)	中证 500(sz399905)
    中证 800(sz399906)	中证 700(sz399907)	300 能源(sz399908)	300 材料(sz399909)	300 工业(sz399910)	300 可选(sz399911)
    300 消费(sz399912)	300 医药(sz399913)	300 金融(sz399914)	300 信息(sz399915)	300 电信(sz399916)	300 公用(sz399917)
    Ｂ股指数(sh000003)	工业指数(sh000004)	商业指数(sh000005)	地产指数(sh000006)	公用指数(sh000007)	综合指数(sh000008)
    上证180(sh000010)	基金指数(sh000011)	国债指数(sh000012)	企债指数(sh000013)	红利指数(sh000015)	上证５０(sh000016)
    新 综 指(sh000017)	沪深300(sh000300)	小康指数(sh000901)	中证流通(sh000902)	中证100(sh000903)	中证200(sh000904)
    中证800(sh000906)	中证700(sh000907)	300能源(sh000908)	300材料(sh000909)	300工业(sh000910)	300可选(sh000911)
    300消费(sh000912)	300医药(sh000913)	300金融(sh000914)	300信息(sh000915)	300电信(sh000916)	300公用(sh000917)
    超大盘(sh000043)	创业板指(sz399006)	创业板R(sz399606)	央视50(sh399550)	大数据100指数(sz399415)	大数据300指数(sz399416)
    百发100(sh000851)	中国波指(sh000188)	创业板50(sz399673)
     */
    function getData($code='sh000300'){
        $httpInfo = array();
        $ch = curl_init();
        $url = "http://hq.sinajs.cn/list=".$code;
        curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
        curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );
        curl_setopt( $ch, CURLOPT_TIMEOUT , 60);
        curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt( $ch , CURLOPT_URL , $url);
        //结果字符串如下：var hq_str_sh000300="沪深300,3846.9367,3837.3511,3847.7930,3850.7276,3840.9073,0,0,10097724,16034810134,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2018-06-07,09:43:16,00";
        $response = curl_exec( $ch );
        curl_close( $ch );
        //处理返回值
        var_dump($response);die;
        return $response;
    }


    /**
     * tp5邮件
     * @param
     * @return mixed
     * @author staitc7 <static7@qq.com>
     */
    public function email($mailer = "雪球网", $title, $body)
    {

        $toemail = '80837879@qq.com';//定义收件人的邮箱

        $mail = new \PHPMailer\PHPMailer\PHPMailer();

        $mail->isSMTP();// 使用SMTP服务
        $mail->CharSet = "utf8";// 编码格式为utf8，不设置编码的话，中文会出现乱码
        $mail->Host = "smtp.sina.com";// 发送方的SMTP服务器地址
        $mail->SMTPAuth = true;// 是否使用身份验证
        $mail->Username = "peofy@sina.com";// 发送方的163邮箱用户名，就是你申请163的SMTP服务使用的163邮箱</span><span style="color:#333333;">
        $mail->Password = "406121a5649b696d";// 发送方的邮箱密码，注意用163邮箱这里填写的是“客户端授权密码”而不是邮箱的登录密码！</span><span style="color:#333333;">
        $mail->SMTPSecure = "ssl";// 使用ssl协议方式</span><span style="color:#333333;">
        $mail->Port = 465;// 163邮箱的ssl协议方式端口号是465/994

        $mail->setFrom("peofy@sina.com", "$mailer");// 设置发件人信息，如邮件格式说明中的发件人，这里会显示为Mailer(xxxx@163.com），Mailer是当做名字显示
        $mail->addAddress($toemail, 'Yang');// 设置收件人信息，如邮件格式说明中的收件人，这里会显示为Liang(yyyy@163.com)
        $mail->addReplyTo("peofy@sina.com", "Reply");// 设置回复人信息，指的是收件人收到邮件后，如果要回复，回复邮件将发送到的邮箱地址
        //$mail->addCC("xxx@163.com");// 设置邮件抄送人，可以只写地址，上述的设置也可以只写地址(这个人也能收到邮件)
        //$mail->addBCC("xxx@163.com");// 设置秘密抄送人(这个人也能收到邮件)
        //$mail->addAttachment("bug0.jpg");// 添加附件


        $mail->Subject = date('Y-m-d H:i:s') . $title;// 邮件标题
        $mail->Body = $body;// 邮件正文
        //$mail->AltBody = "This is the plain text纯文本";// 这个是设置纯文本方式显示的正文内容，如果不支持Html方式，就会用到这个，基本无用

        if (!$mail->send()) {// 发送邮件
            echo "Message could not be sent.";
            echo "Mailer Error: " . $mail->ErrorInfo;
            die;// 输出错误信息
        } else {
            return 200;
        }

    }

}
